#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from enum import unique

from autoapi.enums import StrEnum


@unique
class AssertType(StrEnum):
    """断言类型枚举，用于定义不同的比较方式"""

    equal = "eq"
    """判断实际值等于预期值"""

    not_equal = "not_eq"
    """判断实际值不等于预期值"""

    greater_than = "gt"
    """判断实际值大于预期值"""

    greater_than_or_equal = "ge"
    """判断实际值大于或等于预期值"""

    less_than = "lt"
    """判断实际值小于预期值"""

    less_than_or_equal = "le"
    """判断实际值小于或等于预期值"""

    string_equal = "str_eq"
    """字符串精确匹配（区分大小写）"""

    length_equal = "len_eq"
    """判断对象长度等于预期值"""

    not_length_equal = "not_len_eq"
    """判断对象长度不等于预期值"""

    length_less_than = "len_lt"
    """判断对象长度小于预期值"""

    length_less_than_or_equal = "len_le"
    """判断对象长度小于或等于预期值"""

    length_greater_than = "len_gt"
    """判断对象长度大于预期值"""

    length_greater_than_or_equal = "len_ge"
    """判断对象长度大于或等于预期值"""

    contains = "contains"
    """判断实际值包含预期内容"""

    not_contains = "not_contains"
    """判断实际值不包含预期内容"""

    startswith = "startswith" # type: ignore
    """判断实际值以预期内容开头"""

    endswith = "endswith" # type: ignore
    """判断实际值以预期内容结尾"""
